System simulators allow a user to model a system to determine one or more responses to one or more stimuli. This capability allows a system designer to develop an understanding of the behavior of the system before it is constructed.
The user of a conventional simulator such as the MAST simulator from Analogy Corporation of Beaverton Oregon, the conventional SPICE simulator or other simulators related to the SPICE simulator typically describes a system to the system simulator using a modeling language. This modeling language allows the user to describe to the simulator the structural description of the system to be simulated, and a behavioral description of each component in the system. The structural description of the system, sometimes called a "netlist," is a list of all the components in the system, along with information about how the components are interconnected.
The user typically provides the behavioral description of each component using a set of relations which describe the behavior of the component. In some simulators such as MAST, these relations are in the form of equations. To describe a system that observes laws of conservation, such as Kirchhoff's laws in electrical systems or Newton's laws of motion in mechanical systems, the user of a simulator that employs a low-level behavioral language must also specify relations or equations consistent with the appropriate conservation requirements. For example, in an electrical system obeying the laws of conservation, the user must specify, for every node in the system, that the sum of currents into the node is equal to zero, or that the current into a branch is equal to the current out of the branch. The process of specifying these relations can be quite cumbersome, and is prone to error.
The user of the conventional SPICE simulator is not required to enter conservation relations into the simulator, but this simplicity comes at the expense of flexibility. The SPICE simulator does not allow the user to describe the behavior of a component using relations, limiting the user to the component definitions supplied with the simulator. The user of SPICE may vary certain component parameters, but may not alter existing definitions or create new ones.
It is believed that no currently available conventional system simulator provides the convenience of elimination of the requirement to explicitly specify the conservation relations while providing the flexibility to create or alter component definitions.
Another aspect of other simulators that makes them cumbersome to use is the method of specifying the relations. As described below, a user of a simulator specifies the behavior of a system by specifying the behavior of flows and potentials. The user of a simulator that employs a low-level behavioral language uses one syntax to specify a flow, and another syntax to specify a potential, requiring the user to remember to use the proper syntax. For example, to specify a flow "i" through a conductor having terminals "p" and "n", a user might write the relation as: EQU i(p-&gt;n)=G(V(p)-V(n))
however, to specify a potential, V, the user must first specify a flow in and a flow out, and then tell the simulator to solve for the flow that is equal to a function of a potential. For example, to specify a potential across two nodes "p" and "n" of a resistor having resistance r,:
i(p)+=i PA1 i(n)-=i PA1 i: V(p)-V(n)=r*i
Simulators which use inconsistent specification techniques are difficult for a user to learn and time consuming to use. It is believed that no currently available simulator provides a consistent specification technique for flows and potentials.